package JavaTest.polymorphic;

/**
 * 多态
 */
public class PolymorphicTest0 {
    public static void main(String[] args) {
        /**
         * 此处多态向上转型
         * 在堆中创建一个Cat对象，使用animal指向Cat
         * 编译类是 Animal，运行时类是Cat。
         * 所以animal可以调用Cat类的所有继承于Animal的方法
         * 但是无法调用 Cat 的特有方法 catchMouse
         */
        Animal animal = new Cat();
//        animal.catchMouse();
        /**
         * 此处多态的向下转型。
         * cat可以调用Cat的所有方法
         */
        Cat cat = (Cat) animal;
        cat.catchMouse();
    }
}
